﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using PAT.Data;
using PAT.Data.Bases;
using PAT.Entities;
using PAT.Services;
using PAT.Util;

public partial class ascx_FormNuevaCita : System.Web.UI.UserControl
{
    #region Atributos
    private Common instanciaCommon = new Common();

    public event EventHandler AcceptEvent;
    public event EventHandler CancelEvent;
    #endregion

    #region Propiedades
    public String IdTaller { get { return hdIdTaller.Value; } set { hdIdTaller.Value = value; } }
    public String NombreTaller { get { return lblNombreTaller.Text; } set { lblNombreTaller.Text = value; } }
    public String RangoSeleccionadoCompleto { get { return lblRangoSeleccionado.Text; } set { lblRangoSeleccionado.Text = value; } }
    public String RangoSeleccionadoInicio { get { return hdInicioRango.Value; } set { hdInicioRango.Value = value; } }
    public String FechaSeleccionada { get { return hdFechaRango.Value; } set { hdFechaRango.Value = value; } }
    public String NombreMecanico { get { return lblNombreMecanico.Text; } set { lblNombreMecanico.Text = value; } }
    public String IdMecanico { get { return hdIdMecanico.Value; } set { hdIdMecanico.Value = value; } }
    #endregion

    #region Eventos
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            UtilUI.BindListControl(ddlCatalogoVehiculo, instanciaCommon.GetCatalogosVehiculoByEstado(true), "IdCatalogo", "DescripcionCatalogo", true);
            UtilUI.BindListControl(ddlKit, instanciaCommon.GetKitsPorEstado(true), "IdKit", "DescripcionKit", true);
        }
    }

    protected virtual void OnAcceptEvent(EventArgs e)
    {
        if (AcceptEvent != null)
            AcceptEvent(this, e);
    }

    protected virtual void OnCancelEvent(EventArgs e)
    {
        if (CancelEvent != null)
            CancelEvent(this, e);
    }
    
    protected void btnAceptar_Click(object sender, EventArgs e)
    {
        PatCitaTaller instanciaGrabacion = new PatCitaTaller();
        instanciaGrabacion.IdTaller = Convert.ToInt32(hdIdTaller.Value);
        instanciaGrabacion.FechaCita = Convert.ToDateTime(hdFechaRango.Value);
        instanciaGrabacion.HoraCita = Convert.ToDateTime(hdFechaRango.Value + " " + hdInicioRango.Value);
        instanciaGrabacion.IdRecepcionistaAsignado = Convert.ToInt32(hdIdMecanico.Value);
        instanciaGrabacion.IdCatalogo = Convert.ToInt32(ddlCatalogoVehiculo.SelectedIndex);
        instanciaGrabacion.PlacaVehiculo = txtPlacaVehiculo.Text;
        instanciaGrabacion.NombreCliente = txtNombreCliente.Text;
        instanciaGrabacion.TelefonoFijoCliente = txtTelefonoFijo.Text;
        instanciaGrabacion.TelefonoMovilCliente = txtTelefonoCelular.Text;
        instanciaGrabacion.EMailCliente = txtEmail.Text;
        if (ddlKit.SelectedValue == String.Empty)
            instanciaGrabacion.IdKit = null;
        else
            instanciaGrabacion.IdKit = Convert.ToInt32(ddlKit.SelectedValue);
        instanciaGrabacion.IdEstadoCita = (byte)EstadoCitaTaller.NoCumplida;
        instanciaGrabacion.Observaciones = txtObservaciones.Text;
        instanciaGrabacion.Activo = true;

        instanciaCommon.AlmacenarCita(instanciaGrabacion);

        if (AcceptEvent != null)
            AcceptEvent(sender, e);
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        if (CancelEvent != null)
            CancelEvent(this, e);
    }
    #endregion

    #region Funciones
    public void ReiniciarIndices()
    {
        ddlCatalogoVehiculo.SelectedIndex = ddlKit.SelectedIndex = 0;
    }

    public void LimpiarControles()
    {
        txtEmail.Text = txtNombreCliente.Text = txtObservaciones.Text = txtPlacaVehiculo.Text = txtTelefonoCelular.Text = txtTelefonoFijo.Text = String.Empty;
    }
    #endregion
}
